/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author f0899
 */
package fi.jamk;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;

// Tämä luokka periytyy JFramesta (voi toimia ikkunana)
// Luokka toteuttaa actionlistener-liittymän eli pakottaa kääsittelemään
// JButtonin eli painikkeiden tapahtumat tässä luokassa
public class NaytaKuva extends JFrame implements ActionListener {

    // ominaisuudet
    private Image image1, image2, image3;
    private MediaTracker mt;
    private JButton button1, button2, button3;
    private JPanel up, center;

    // konstruktori
    public NaytaKuva() {
        super("Kuvat JFramessa ohjelmoimalla");
        // ladataan kuvat
        lataaKuvat();
        // ikkunan sulkeminen
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        // komponentit
        button1 = new JButton("eka");
        button1.addActionListener(this);
        button2 = new JButton("toka");
        button2.addActionListener(this);
        button3 = new JButton("koka");
        button3.addActionListener(this);
        // yläpaneeli
        up = new JPanel();
        up.setLayout(new FlowLayout());
        up.add(button1);
        up.add(button2);
        up.add(button3);
        // keskipaneeli
        center = new JPanel();
        // lisätään paneelit jframeen eli ikkunaan
        getContentPane().add(up, BorderLayout.NORTH);
        getContentPane().add(center, BorderLayout.CENTER);
        setSize(400, 400);
    }
    // metodit
    // metodi lataa kuvatiedostot

    private void lataaKuvat() {
        // aloitetaan kuvien lataaminen
        this.image1 = getToolkit().createImage("kuva1.jpg");
        this.image2 = getToolkit().createImage("kuva2.jpg");
        this.image3 = getToolkit().createImage("kuva3.jpg");
        // odotellaan, että kuvat on latautuneet
        mt = new MediaTracker(this);
        mt.addImage(image1, 0);
        mt.addImage(image2, 1);
        mt.addImage(image3, 2);

        try {
            mt.waitForAll();
        } catch (InterruptedException e) {
            //
        }
    }

// metodi toteuttaa painikkeiden tapahtuman käsittelyn
    @Override
    public void actionPerformed(ActionEvent e) {
        //paneelin pinta, minne piirretään
        Graphics g = center.getGraphics();
        //mitä painiketta on painettu
        JButton painettu = (JButton) e.getSource();
        if (painettu == button1) g.drawImage(image1,10,10,this);
        else if (painettu == button2) g.drawImage(image2,10,10,this);
        else if (painettu == button3) g.drawImage(image3,10,10,this);
    }
    // main-metodi

    public static void main(String args[]) {
        // asetetaan sovelluksen tuntuma
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e) {
            System.out.println("Haluttu tuntuma ei alustu!");
            return;
        }
        // luodaan sovelluksen pääikkuna
        new NaytaKuva().setVisible(true);
    }
}
